// Generated from code/ch16/Cymbol.g by ANTLR 4.9.0-SNAPSHOT


import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener";

import { DeclContext } from "./CymbolParser";
import { VarDeclarationContext } from "./CymbolParser";
import { TypeContext } from "./CymbolParser";
import { ExpreessionContext } from "./CymbolParser";
import { PrimaryContext } from "./CymbolParser";


/**
 * This interface defines a complete listener for a parse tree produced by
 * `CymbolParser`.
 */
export interface CymbolListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by `CymbolParser.decl`.
	 * @param ctx the parse tree
	 */
	enterDecl?: (ctx: DeclContext) => void;
	/**
	 * Exit a parse tree produced by `CymbolParser.decl`.
	 * @param ctx the parse tree
	 */
	exitDecl?: (ctx: DeclContext) => void;

	/**
	 * Enter a parse tree produced by `CymbolParser.varDeclaration`.
	 * @param ctx the parse tree
	 */
	enterVarDeclaration?: (ctx: VarDeclarationContext) => void;
	/**
	 * Exit a parse tree produced by `CymbolParser.varDeclaration`.
	 * @param ctx the parse tree
	 */
	exitVarDeclaration?: (ctx: VarDeclarationContext) => void;

	/**
	 * Enter a parse tree produced by `CymbolParser.type`.
	 * @param ctx the parse tree
	 */
	enterType?: (ctx: TypeContext) => void;
	/**
	 * Exit a parse tree produced by `CymbolParser.type`.
	 * @param ctx the parse tree
	 */
	exitType?: (ctx: TypeContext) => void;

	/**
	 * Enter a parse tree produced by `CymbolParser.expreession`.
	 * @param ctx the parse tree
	 */
	enterExpreession?: (ctx: ExpreessionContext) => void;
	/**
	 * Exit a parse tree produced by `CymbolParser.expreession`.
	 * @param ctx the parse tree
	 */
	exitExpreession?: (ctx: ExpreessionContext) => void;

	/**
	 * Enter a parse tree produced by `CymbolParser.primary`.
	 * @param ctx the parse tree
	 */
	enterPrimary?: (ctx: PrimaryContext) => void;
	/**
	 * Exit a parse tree produced by `CymbolParser.primary`.
	 * @param ctx the parse tree
	 */
	exitPrimary?: (ctx: PrimaryContext) => void;
}

